package com.projeto.bola.web.modalidade;

import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;


@ManagedBean(name="modalidadeBean")
@RequestScoped
public class ModalidadeBean {
	
	private Modalidade modalidadeSelecionada = new Modalidade();
	private List<Modalidade> lista = null;
	private List<SelectItem> modalidadeSelect;
	
	public List<SelectItem> getModalidadeSelect() {
		if (modalidadeSelect == null){
			
			modalidadeSelect = new ArrayList<SelectItem>();
			
			ModalidadeRN modalidadeRN = new ModalidadeRN();
			
			List<Modalidade> listaPerfis = modalidadeRN.listar();
			
			if(listaPerfis != null && !listaPerfis.isEmpty()){
				SelectItem item;
				for (Modalidade modalidadeLista : listaPerfis){
					item = new SelectItem(modalidadeLista,modalidadeLista.getNomeModalidade());
					modalidadeSelect.add(item);
				}
				
			}
			
		}
		return modalidadeSelect;
	}

	
	
	public void salvar(){
		ModalidadeRN modalidadeRN = new ModalidadeRN();
		if(this.modalidadeSelecionada.getId() != null && this.modalidadeSelecionada.getId()!=0){
			modalidadeRN.alterar(this.modalidadeSelecionada);
			FacesMessage faces = new FacesMessage(
					"Modalidade alterada com sucesso!");
			FacesContext contexto = FacesContext.getCurrentInstance();
			contexto.addMessage(null, faces);
			novo();
		}else{
			modalidadeRN.salvar(modalidadeSelecionada);
			FacesMessage faces = new FacesMessage(
					"Modalidade cadastrada com sucesso!");
			FacesContext contexto = FacesContext.getCurrentInstance();
			contexto.addMessage(null, faces);
			novo();
		}		
		this.lista = null;		
	}
	
	public Modalidade getModalidadeSelecionada() {
		return modalidadeSelecionada;
	}
	public void setModalidadeSelecionada(Modalidade modalidadeSelecionada) {
		this.modalidadeSelecionada = modalidadeSelecionada;
	}
	
	public List<Modalidade> getLista() {
		ModalidadeRN modalidadeRN = new ModalidadeRN();
		if(lista == null){
			lista = modalidadeRN.listar();
		}
		return lista;
	}
		
	public void excluir(){
		ModalidadeRN modalidadeRN = new ModalidadeRN();
		modalidadeRN.excluir(this.modalidadeSelecionada);
		novo();
		this.lista=null;
	}
	
	public void novo(){
		this.modalidadeSelecionada = new Modalidade();
	}
	
}
